{% if not ingress_nginx_host_network %}
apiVersion: v1
kind: Service
metadata:
  name: ingress-nginx
  namespace: {{ ingress_nginx_namespace }}
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
{% if ingress_nginx_service_annotations %}
  annotations:
    {{ ingress_nginx_service_annotations | to_nice_yaml(indent=2, width=1337) | indent(width=4) }}
{% endif %}
spec:
  type: {{ ingress_nginx_service_type }}
  ports:
    - name: http
      port: 80
      targetPort: 80
      protocol: TCP
{% if (ingress_nginx_service_type == 'NodePort' or ingress_nginx_service_type == 'LoadBalancer') and ingress_nginx_service_nodeport_http %}
      nodePort: {{ingress_nginx_service_nodeport_http | int}}
{% endif %}
    - name: https
      port: 443
      targetPort: 443
      protocol: TCP
{% if (ingress_nginx_service_type == 'NodePort' or ingress_nginx_service_type == 'LoadBalancer') and ingress_nginx_service_nodeport_https %}
      nodePort: {{ingress_nginx_service_nodeport_https | int}}
{% endif %}
{% if ingress_nginx_configmap_tcp_services %}
{% for port in ingress_nginx_configmap_tcp_services.keys() %}
    - name: tcp-port-{{ port }}
      port: "{{ port | int }}"
      targetPort: "{{ port | int }}"
      protocol: TCP
{% endfor %}
{% endif %}
{% if ingress_nginx_configmap_udp_services %}
{% for port in ingress_nginx_configmap_udp_services.keys() %}
    - name: udp-port-{{ port }}
      port: "{{ port | int }}"
      targetPort: "{{ port | int }}"
      protocol: UDP
{% endfor %}
{% endif %}
  selector:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
{% endif %}
